"""------------------ Item家具类 ------------------"""
class Item:
    def __init__(self, type, area):
        '''
        创建家具类的初始化方法
        :param type: 家具类型
        :param area: 家具面积
        '''
        self.type = type
        self.area = area

    # def __str__(self):
    #     return 'str家具类型: {},家具占用面积: {}'.format(self.type, self.area)

    def __repr__(self):
        return 'repr家具类型: {},家具占用面积: {}'.format(self.type, self.area)

"""------------------ House房子类 ------------------"""
class House:
    def __init__(self, address, area):
        '''
        房子的初始化方法
        :param address: 房子地址
        :param area: 房子面积
        '''
        self.address = address
        self.area = area
        # 剩余面积
        self.free_area = self.area
        # 家具列表
        self.items = []

    def __str__(self):
        return '房子地址: {},占地面积: {},剩余面积: {}'.format(self.address, self.area, self.free_area)

    def add_item(self, item):
        """
        添加家具到房子中
        :param item: 家具类Item的实例
        :return:
        """
        if self.free_area >= item.area:
            # 家具添加到列表中
            self.items.append(item)
            # 修改剩余面积
            self.free_area -= item.area
            # 可以添加
            print('添加成功')
        else:
            # 不能添加
            print('面积不足, 不能添加家具')


# 创建家具
item1 = Item('桌子', 40)
item2 = Item('椅子', 10)
item3 = Item('家庭影院', 80)
print(item1)
print(item2)
print(item3)

# 创建房子
house = House('深圳湾一号', 100)
# 打印家具
print(house)

print("---------------------------------------------")
# 添加家具
house.add_item(item1)
house.add_item(item2)
house.add_item(item3)
print(house)
print("所有家具: ", house.items)
